#ifndef ATTRIBUTEXML_H
#define ATTRIBUTEXML_H

#include "config.h"

/**
 *AttributeXML class représents an attribute of a XML Tag (named ElementXML in our Structure)
 */

class AttributeXML {

public:

/**
 * Constructor n°1 : Instanciate the two members of this class: name and value
 * @param _name the name of the attribute (string)
 * @param _value the value of the attribute (string)
 */
AttributeXML(std::string _name, std::string _value);

/**
 * Constructor n°2 : Instanciate the two members of this class: name and value
 * @param _name the name of the attribute (char*)
 * @param _value the value of the attribute (char*)
 */
AttributeXML(char* _name, char* _value);


/**
 * Destructor
 */
~AttributeXML();

/**
 * Method which returns the representation in string of an argument (name = "value")
 * @return This string : name of the attribute  = "value of the attribute"
 */
std::string toString() const;

/**
 * Getter for the class member: name
 *@return the name
 */
std::string getName() const;


/**
 * Getter for the class member: value
 *@return the value
 */
std::string getValue() const;

/**
 * Setter for the class member: name
 *@param _name the name to set
 *@return true if no error, false otherwise
 */
bool setName(std::string _name);

/**
 * Setter for the class member: value
 *@param _value the value to set
 *@return true if no error, false otherwise
 */
bool setValue(std::string _value);

protected:

/**
 * A protected class member represent the name of the Xml attribute
 */
std::string name;

/**
 * A protected class member represent the value of the Xml attribute
 */
std::string value;

};

#endif
